home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / lcppb.zip / LCPPLIB.ZIP / ERROR.CPP < prev    next >
C/C++ Source or Header  |  1991-07-08  |  2KB  |  61 lines

  1. // error.cpp -- Error-handling module
  2.  
  3. //#include <stream.hpp>
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include "error.h"
  7.  
  8. int errornumber;  // Most recent error number passed to error()
  9. int errorignore;  // 0 = halt on error; 1 = don't halt on error
  10.  
  11. /* -- Call error with error number argument. If errorignore == FALSE
  12. (the default), program halts with error message. If errorignore ==
  13. TRUE, then program continues and the next statement should call
  14. geterror() to determine whether the previous operation succeeded or
  15. failed. */
  16.  
  17. void error(int errnum, const char *s)
  18. {
  19.   errornumber = errnum;      // Save error number in global
  20.   if (errorignore) return;   // Exit if not halting on errors
  21.   if (s == NULL)             // If no string passed to function
  22.     switch(errnum) {        // Assign literal string to s
  23.       case ERRMEM:
  24.         s = "Out of memory";
  25.         break;
  26.       case ERRWININIT:
  27.         s = "Window class not initialized";
  28.         break;
  29.       default:
  30.         s = "Unknown cause";
  31.     }
  32. //   cout << "\n\nERROR: " << s << '\n'; // Display message
  33.   printf("\n\nERROR %d: %s\n", errnum, s);
  34.   exit(errnum);                       // Halt program
  35. }
  36.  
  37. /* -- Call geterror after setting errorignore to TRUE to determine
  38. whether previous operation succeeded (geterror == 0) or failed
  39. (geterror == 1). If the optional reset parameter == 0, then the
  40. global errornumber is NOT reset. If you do not supply this argument
  41. value (or if it's not 0), then the global errornumber is reset to 0.
  42. This means that in normal use, only the first call to geterror
  43. returns useful information. */
  44.  
  45. int geterror(int reset)
  46. {
  47.   int t = errornumber;
  48.  
  49.   if (reset)
  50.     errornumber = 0;
  51.   return t;
  52. }
  53.  
  54.  
  55. // Copyright (c) 1990 by Tom Swan. All rights reserved
  56. // Revision 1.00    Date: 10/26/1990   Time: 11:31 am
  57.  
  58. // Revision 1.01    Date: 07/08/1991   Time: 05:41 pm
  59. // Converted for Borland C++ 2.0
  60.  
  61.